Project Name: JobGuard


Purpose of the Project:
The goal of our project, JobGuard, is to protect job seekers from falling victim to fraudulent job listings. As students preparing to enter the workforce, we realized how common online job scams have become, especially for people applying through platforms like LinkedIn, Indeed, and other remote job boards. These scams often target students, new graduates, and entry-level candidates who may not recognize red flags right away. We wanted to create a tool that not only detects fraud using advanced AI but also empowers users with the knowledge and confidence to make safer decisions during their job search. By combining technology with scam-awareness patterns, our aim was to make job hunting a safer, more transparent process for everyone.


Technologies Used:

	- Python 3.9+ – Main programming language
	- Streamlit – For creating the interactive web app
	- Google Gemini Pro (via google.generativeai) – AI model for fraud detection
	- FPDF – Used to generate PDF reports from text
	- Plotly – Used for gauge chart visualization of confidence score
	- Standard Python Modules – os, re, csv, pandas

Dependencies:
Before running the app, ensure you have the following Python packages installed:

	- pip install streamlit
	- pip install google-generativeai
	- pip install fpdf
	- pip install plotly

	Alternatively, you can create a requirements.txt and install everything at once with this command:
	- pip install -r requirements.txt


Setup Instructions:
1. Download the Project
	Unzip it and open the JobGuard directory in VSCode or your terminal.

2. Set Up Google Gemini API Key
	The app uses Google's Gemini Pro model for analyzing job listings.
	You must set the API key as an environment variable before running the app.

	On Mac/Linux: export GOOGLE_API_KEY="your_key_here"
	On Windows (Command Prompt): set GOOGLE_API_KEY=your_key_here
	Replace "your_key_here" with your actual Gemini API key.

3. Run the Application
	From the root directory (JobGuard), start the Streamlit app using:
	python3 -m streamlit run detect_copy.py


Directory Structure
This is the structure of the Code/ directory:

JobGuard
│
├── detect_copy.py         # Main Streamlit app that runs the job fraud detection tool
├── utils.py               # Utility functions for saving outputs in TXT, PDF, and CSV format
│
├── outputs/               # Automatically generated folder that stores results
│   ├── last_result.txt    # AI-generated analysis in plain text
│   ├── last_report.pdf    # PDF report created using FPDF
│   └── last_result.csv    # Structured report with metadata and AI verdict


How the App Works:
	Home Tab: Introduces the tool’s purpose and gives a high-level explanation of how it helps users detect fraud.

	AI Tool Tab: Users input job listing details and a job description. The app sends it to Gemini Pro and returns a verdict, confidence score, and margin of error. Results are visualized with a Plotly gauge chart and saved as .txt, .pdf, and .csv in the outputs/ folder.

	Questionnaire Tab: A 12-question checklist lets users evaluate suspicious listings manually. “Yes” answers trigger scam warnings.

	About Us Tab: Describes the team, the purpose of the project, and the technologies used.

Output Files:
When a job listing is analyzed, the app generates 3 downloadable files:
	- last_result.txt: Gemini’s text analysis
	- last_result.csv: Structured output (job info, verdict, metrics)
	- last_report.pdf: Formatted version of the analysis (via FPDF)
	These are saved inside the outputs/ folder.

Notes
You must have an active internet connection for the Gemini AI model to work.
The confidence meter requires Plotly and will fail to render if it’s not installed.
If outputs/ doesn't exist, the app creates it automatically on startup.
If you see an error like 'streamlit: command not found', make sure Streamlit is installed and use python3 -m streamlit run detect_copy.py instead.


Future Implementations:

	- Cultural awareness: Train the AI to better understand regional language differences (e.g., terms used in India or the UK) to reduce false positives.
	- Time-based filtering: Flag listings that have been posted for unusually long periods or reused frequently.
	- Wider job scope: Expand beyond entry-level roles to evaluate mid- and senior-level listings.
	- Chrome extension: Turn the app into a browser extension for real-time analysis directly on job sites.






